package models

import "rongyy/src/app"

type IpDepositModel struct {
	BaseModel      `xorm:"extends"`
	PatientId      string `json:"patient_id"`
	PatientName    string `json:"patient_name"`
	AdmId          string `json:"adm_id"`
	Fee            string `json:"fee"`
	OrderSn        string `json:"order_sn"`
	UpdatedBy      string `json:"updated_by"`
	SerialNo       string `json:"serial_no"`
	DepositBalance string `json:"deposit_balance"`
	Status         string `json:"status"`
	PayStatus      string `json:"pay_status"`
	Openid         string `json:"openid"`
}

type ReqIpDeposit struct {
	PatientID string  `json:"patient_id"`
	AdmID     string  `json:"adm_id"`
	Fee       float64 `json:"fee"`
	OrderSn   string  `json:"order_sn"`
	UpdatedBy string  `json:"updated_by"`
}

type ReqIpDepositRecord struct {
	PatientID string `json:"patient_id"`
	AdmID     string `json:"adm_id"`
}

func (rm *IpDepositModel) TableName() string {
	return "ip_deposit_orders"
}

func (rm *IpDepositModel) Create(reg *IpDepositModel) error {
	_, err := app.DB().Insert(reg)
	if err != nil {
		return err
	}
	return nil
}

func (rm *IpDepositModel) FindByOrderSn(orderSn string) (*IpDepositModel, bool, error) {
	reg := new(IpDepositModel)
	has, err := app.DB().Where("order_sn = ?", orderSn).Limit(1).Get(reg)
	if err != nil {
		return nil, has, err
	}
	return reg, has, nil
}

func (rm *IpDepositModel) Confirm() error {
	_, err := app.DB().Where("order_sn = ?", rm.OrderSn).Cols("status", "pay_status", "updated_by", "deposit_balance", "serial_no").Update(rm)
	if err != nil {
		return err
	}
	return err
}
